@mixin utils-clearfix {
    $selector: &;

    @at-root {
        #{$selector}::before,
        #{$selector}::after {
            display: table;
            content: '';
        }
        #{$selector}::after {
            clear: both;
        }
    }
}

@mixin utils-vertical-center {
    $selector: &;

    @at-root {
        #{$selector}::after {
            display: inline-block;
            content: '';
            height: 100%;
            vertical-align: middle;
        }
    }
}

@mixin utils-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@mixin utils-inline-flex-center {
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

@mixin utils-ellipsis-line($line) {
    word-break: break-all;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: $line;
    box-orient: vertical;
    line-clamp: $line;
    overflow: hidden;
}
